package cn.edu.scau.cmi.ema.dao;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Materialaddress;
import org.springframework.dao.DataAccessException;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Set;

public interface MaterialaddressDAO extends JpaDao<Materialaddress> {

	public Materialaddress findMaterialaddressById(Integer id) throws DataAccessException;

	public Materialaddress findMaterialaddressById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByName(String name) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByName(String name, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByNameContaining(String name_1) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDate(Calendar date) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDate(Calendar date, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByPrice(BigDecimal price) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByPrice(BigDecimal price, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDescription(String description) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDescriptionContaining(String description_1)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddressByDescriptionContaining(String description_1, int startResult,
			int maxRows) throws DataAccessException;

	public Materialaddress findMaterialaddressByPrimaryKey(Integer id) throws DataAccessException;

	public Materialaddress findMaterialaddressByPrimaryKey(Integer id, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddresssByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Materialaddress> findAllMaterialaddresss() throws DataAccessException;

	public Set<Materialaddress> findAllMaterialaddresss(int startResult, int maxRows) throws DataAccessException;

	public Set<Materialaddress> findMaterialaddresssByAddress(Integer addressId, int start, int max);

	public Set<Materialaddress> findMaterialaddresssByMaterial(Integer materialId, int start, int max);

	public Set<Materialaddress> findMaterialaddresssByUnit(Integer unitId, int start, int max);

	public Set<Materialaddress> findMaterialaddressByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Materialaddress> findMaterialaddresssByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Materialaddress findMaterialaddressByPhysicalPrimaryKey(Integer materialId, Integer addressId, Calendar date)
			throws DataAccessException;

	public Materialaddress findMaterialaddressByPhysicalPrimaryKey(Integer materialId, Integer addressId, Calendar date,
			int startResult, int maxRows) throws DataAccessException;
}
